home *** CD-ROM | disk | FTP | other *** search
- #define DEBUG 0
- /*
- TOWNS囲碁棋譜記録プログラム
- 1992/02/25 久保田俊也
-
- 91/02/25 kiftitle モジュールを本体より分離
- kifu_titleデ-タを操作する関数の集まり
-
- */
- #include <stdio.h>
- #include <string.h>
- #include <ctype.h>
- #include "igo.h"
- #include "banx.h"
- #include "kiffile.h"
- #include "title.h"
- #define SPACE20 " "
-
- char *my_itowazenkaku(int x);
-
- YMDHM ZERO_TIME = { 0, 0, 0, 0, 0};
- KIF_TITLE kif_title;
- static char save_fname[84] = "";
- static int save_state= 0;
- static int save_flg= 0;
- static int judge_flg= 0;
-
- int title_init()
- {
-
- /* kif_title.ver = 2; 93/3/1 変更 */
- kif_title.ver = 3; /* 93/7/8 変更 */
- kif_title.handy = 0;
- strcpy( kif_title.player_black , SPACE20);
- strcpy( kif_title.player_white , SPACE20);
- strcpy( kif_title.play_space , SPACE20);
- kif_title.play_start = ZERO_TIME;
- kif_title.play_end = ZERO_TIME;
- kif_title.komi_id = -1;
- kif_title.komi_number = -1;
- kif_title.hanmoku_id = -1;
- kif_title.vicdef_id = -1;
- kif_title.vicdef_number = 0;
- save_fname[0] = '\0';
-
- return 0;
- }
-
- int title_blacknameset(char *blackname)
- {
-
- if(strlen(blackname) >= 21){
- return -1;
- }
- strcpy( kif_title.player_black, blackname);
- return 0;
- }
-
- int title_blacknameread(char *blackname)
- {
- kif_title.player_black[20] = '\0';
- strcpy( blackname, kif_title.player_black);
- return 0;
- }
-
- int title_whitenameset(char *whitename)
- {
-
- if(strlen(whitename) >= 21){
- return -1;
- }
- strcpy( kif_title.player_white, whitename);
- return 0;
- }
-
- int title_whitenameread(char *whitename)
- {
-
- kif_title.player_white[20] = '\0';
- strcpy( whitename, kif_title.player_white);
- return 0;
- }
-
- int title_playspaceset(char *play_space)
- {
-
- if(strlen(play_space) >= 21){
- return -1;
- }
- strcpy( kif_title.play_space, play_space);
- return 0;
- }
-
- int title_playspaceread(char *play_space)
- {
-
- kif_title.play_space[20] = '\0';
- strcpy( play_space, kif_title.play_space);
- return 0;
- }
-
- int title_komiset(int komi_id, int komi_number, int hanmoku_id)
- {
-
- if(komi_id == 0 || komi_id == 1){
- kif_title.komi_id = komi_id;
- }else{
- kif_title.komi_id = 2;
- }
- kif_title.komi_number = komi_number;
- kif_title.hanmoku_id = hanmoku_id;
- return 0;
- }
-
- int title_komiread(int *komi_id, int *komi_number, int *hanmoku_id)
- {
-
- *komi_id = kif_title.komi_id;
- *komi_number = kif_title.komi_number;
- *hanmoku_id = kif_title.hanmoku_id;
- return 0;
- }
-
- int title_issueset(int vicdef_id, int vicdef_number)
- {
-
- if(vicdef_id == 0 || vicdef_id == 1 || vicdef_id == 2){
- kif_title.vicdef_id = vicdef_id;
- }else{
- kif_title.vicdef_id = 3;
- }
- kif_title.vicdef_number = vicdef_number;
- return 0;
- }
-
- int title_issueread(int *vicdef_id, int *vicdef_number)
- {
-
- *vicdef_id = kif_title.vicdef_id;
- *vicdef_number = kif_title.vicdef_number;
- return 0;
- }
-
- int title_playstart_time_set(YMDHM play_start)
- {
-
- kif_title.play_start = play_start;
- return 0;
- }
-
- YMDHM *title_playstart_time_read()
- {
-
- return &(kif_title.play_start);
- }
-
- int title_playend_time_set(YMDHM play_end)
- {
-
- kif_title.play_end = play_end;
- return 0;
- }
-
- YMDHM *title_playend_time_read()
- {
- return &(kif_title.play_end);
-
- }
-
- int title_handy_set(int handy)
- {
-
- kif_title.handy = handy;
- return 0;
- }
-
- int title_handy_read()
- {
- return kif_title.handy;
-
- }
-
- /* handy は特殊な形でファイルに格納されている
- 置き石を int の正の数で返す
- */
- int title_handy_int_read()
- {
- int i;
-
- switch(kif_title.handy){
- case '2' + 0: i = 2; break;
- case '2' + 1: i = 3; break;
- case '2' + 2: i = 4; break;
- case '2' + 3: i = 5; break;
- case '2' + 4: i = 6; break;
- case '2' + 5: i = 7; break;
- case '2' + 6: i = 8; break;
- case '2' + 7: i = 9; break;
- case '2' + 8: i = 3; break;
-
- default: i = 1; break;
- }
-
- return i;
-
- }
- char *title_handy_wazenkaku_read()
- {
- int i;
-
- switch(kif_title.handy){
- case '2' + 0: i = 2; break;
- case '2' + 1: i = 3; break;
- case '2' + 2: i = 4; break;
- case '2' + 3: i = 5; break;
- case '2' + 4: i = 6; break;
- case '2' + 5: i = 7; break;
- case '2' + 6: i = 8; break;
- case '2' + 7: i = 9; break;
- case '2' + 8: i = 3; break;
-
- default: i = 3; break;
- }
-
- return my_itowazenkaku(i);
-
- }
-
- int title_tenumber_set(int tenumber)
- {
-
- if(0<tenumber && tenumber<9999){
- kif_title.te_number = tenumber;
- return 0;
- }else{
- return 1;
- }
- }
-
- int title_tenumber_read()
- {
- return kif_title.te_number;
-
- }
- int title_ver_read()
- {
- return kif_title.ver;
-
- }
-
- int title_bantype_set( BAN_TYPE ban_type)
- {
- kif_title.ban_type = ban_type;
- return 0;
-
- }
-
- BAN_TYPE *title_bantype_read()
- {
- return &kif_title.ban_type;
-
- }
-
- int title_fname_set( char fname[])
- {
- int i;
-
- for(i=0;fname[i]!='\0' && i<80;i++){
- save_fname[i] = toupper(fname[i]);
- }
- save_fname[i]='\0';
- if( strstr( save_fname, ".KIF") == NULL ){
- strcat( save_fname, ".KIF");
- }
- return 0;
- }
-
- char *title_fname_read()
- {
- return save_fname;
- }
-
- char *title_short_fname_read()
- {
- static char *s_char;
-
- /* 漢字について現在考慮していない */
- s_char = strrchr( save_fname, '\\');
- if((int *)s_char == NULL){
- return save_fname;
- }
- s_char++;
- if(strlen(s_char)<13){
- return s_char;
- }else{
- save_fname[0] = '\0';
- return save_fname;
- }
- }
-
- int title_fname_clear()
- {
- save_fname[0] = '\0';
- return 0;
- }
-
- int title_state_set( int state)
- {
-
- save_state= state;
- return 0;
- }
-
- int title_state_read()
- {
- return save_state;
- }
-
- int title_fsave_on()
- {
-
- save_flg = ON;
- return 0;
- }
-
- int title_fsave_off()
- {
-
- save_flg = OFF;
- return 0;
- }
-
- int title_fsave_read()
- {
- return save_flg;
- }
-
- int title_judge_on()
- {
-
- judge_flg = ON;
- return 0;
- }
-
- int title_judge_off()
- {
-
- judge_flg = OFF;
- return 0;
- }
-
- int title_judge_read()
- {
- return judge_flg;
- }
-
-